package com.inspector.app.di.vo;

import com.mapsforge.map.EfbLatLngPoint;


/**
 * 定位打点
 * @author CodeK 2023/8/22
 */
public class LocationPosition {

    private String id;
    private long locationTime;  //[定位回调时间]
    private long nanoTime;      //[计算时间戳]
    private EfbLatLngPoint latLngPoint;  //[当前定位经纬度]

    private boolean speedEnabled; //[当前速度是否可见]
    private float currentSpeed; //[当前速度-GPS返回或球面距离计算得出, 定位为GPS模式时返回速度,其他模式可能返回0]

    private double altitude;  //[海波高度,轨迹点需要上传]
    private float mHorizontalAccuracyMeters = 0.0f; //[水平精确]
    private float mVerticalAccuracyMeters = 0.0f;   //[竖直精确]
    private float mSpeedAccuracyMetersPerSecond = 0.0f;
    private float mBearingAccuracyDegrees = 0.0f;

    private float bearing;


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public long getLocationTime() {
        return locationTime;
    }

    public void setLocationTime(long locationTime) {
        this.locationTime = locationTime;
    }

    public long getNanoTime() {
        return nanoTime;
    }

    public void setNanoTime(long nanoTime) {
        this.nanoTime = nanoTime;
    }

    public EfbLatLngPoint getLatLngPoint() {
        return latLngPoint;
    }

    public void setLatLngPoint(EfbLatLngPoint latLngPoint) {
        this.latLngPoint = latLngPoint;
    }

    public boolean isSpeedEnabled() {
        return speedEnabled;
    }

    public void setSpeedEnabled(boolean speedEnabled) {
        this.speedEnabled = speedEnabled;
    }

    public float getCurrentSpeed() {
        return currentSpeed;
    }

    public void setCurrentSpeed(float currentSpeed) {
        this.currentSpeed = currentSpeed;
    }

    public void setAltitude(double altitude) {
        this.altitude = altitude;
    }

    public double getAltitude() {
        return altitude;
    }

    public float getHorizontalAccuracyMeters() {
        return mHorizontalAccuracyMeters;
    }

    public void setHorizontalAccuracyMeters(float mHorizontalAccuracyMeters) {
        this.mHorizontalAccuracyMeters = mHorizontalAccuracyMeters;
    }

    public void setVerticalAccuracyMeters(float mVerticalAccuracyMeters) {
        this.mVerticalAccuracyMeters = mVerticalAccuracyMeters;
    }

    public float getVerticalAccuracyMeters() {
        return mVerticalAccuracyMeters;
    }

    public void setSpeedAccuracyMetersPerSecond(float mSpeedAccuracyMetersPerSecond) {
        this.mSpeedAccuracyMetersPerSecond = mSpeedAccuracyMetersPerSecond;
    }

    public float getSpeedAccuracyMetersPerSecond() {
        return mSpeedAccuracyMetersPerSecond;
    }

    public void setBearingAccuracyDegrees(float mBearingAccuracyDegrees) {
        this.mBearingAccuracyDegrees = mBearingAccuracyDegrees;
    }

    public float getBearingAccuracyDegrees() {
        return mBearingAccuracyDegrees;
    }

    public void setBearing(float bearing) {
        this.bearing = bearing;
    }

    public float getBearing() {
        return bearing;
    }

    @Override
    public String toString() {
        return "LocationPosition{" +
                "id='" + id + '\'' +
                ", locationTime=" + locationTime +
                ", nanoTime=" + nanoTime +
                ", latLngPoint=" + latLngPoint +
                ", speedEnabled=" + speedEnabled +
                ", currentSpeed=" + currentSpeed +
                ", altitude=" + altitude +
                ", mHorizontalAccuracyMeters=" + mHorizontalAccuracyMeters +
                ", mVerticalAccuracyMeters=" + mVerticalAccuracyMeters +
                ", mSpeedAccuracyMetersPerSecond=" + mSpeedAccuracyMetersPerSecond +
                ", mBearingAccuracyDegrees=" + mBearingAccuracyDegrees +
                ", bearing=" + bearing +
                '}';
    }
}
